package com.webinsky.service.resource;

import java.util.List;

import com.webinsky.common.proj.BookMode;
import com.webinsky.common.proj.Lang;
import com.webinsky.domain.resource.ResOrders;
import com.webinsky.domain.resource.ResType;
import com.webinsky.domain.resource.Resource;
import com.webinsky.domain.resource.Resources;

public interface ResManagement {
	/**
	 * 新建资源（保存到數據庫)
	 * @param res
	 */
	void createRes(Resource res);
	/**
	 * 删除资源
	 * @param uid
	 */
	void delRes(String uid, ResType type);
	/**
	 * 通过类型取得资源
	 * @param type
	 * @return
	 */
	List<Resource> getResourceByType(ResType type, int siteId, Lang lang);
	/**
	 * @param type
	 * @param mode
	 * @return
	 */
	List<Resource> getResourceByType(ResType type, int siteId);
	/**
	 * @param ids
	 * @return
	 */
	List<Resource> getImageResourceByIds(List<Integer> ids);
	/**
	 * @param ids
	 * @return
	 */
	List<Resource> getVideoResourceByIds(List<Integer> ids);
	/**
	 * @param names
	 * @param bookMode
	 * @param lang
	 * @return
	 */
	List<Resource> getVideoResourceByNames(List<String> names, int siteId, Lang lang);
	/**
	 * 分页查找resource
	 * @param type
	 * @param mode
	 * @param lang
	 * @param pageStart
	 * @param pageSize
	 * @return
	 */
	Resources getResourcesByPagnation(ResType type, int siteId, Lang lang, int pageStart, int pageSize, ResOrders order);
	/**
	 * 分页查找name
	 * @param name
	 * @return
	 */
	Resources getResourcesByName(Lang lang, int siteId, String name, ResType type, int pageStart, int pageSize, ResOrders order);
	/**
	 * 校验文件名字是否重复
	 * 
	 * @param mode
	 * @param lang
	 * @param type
	 * @param name
	 * @return
	 */
	boolean checkResourceName(int siteId, Lang lang, ResType type, String name);
	/**
	 * 资源名字修改
	 * @param mode
	 * @param lang
	 * @param type
	 * @param newName
	 */
	void resRename(ResType type, int resId, String newName);
	/**
	 * @param lang
	 * @param type
	 * @return
	 */
	int getCountByLang(Lang lang, ResType type);
}
